概述 内容 概述 命名规范 EntityType 对象访问级别 常见实例1 常见实例2 概述 关于应用字典AD,官方wiki介绍 http://wiki.adempiere.net/Application_Dictionary_Philosophy http://wiki.adempiere.net/Application_Dictionary_Layers http://wiki.adempiere.net/Application_Dictionary http://wiki.compiere.com/display/docs/Data+Dictionary https://idempiere.atlassian.net/browse/IDEMPIERE-362 废弃的对象 对于分布式的开发,多个人都对AD对象进行编辑时,你需要配置一个Centralized_ID_Server来获取一个集中管理的ID。(官方开发使用该方式来管理) http://wiki.adempiere.net/Centralized_ID_Management(必看) http://wiki.idempiere.org/en/Centralized_ID_Management 分布式配置的集中ID管理 (必看) http://wiki.idempiere.org/en/Generating_Migration_Scripts 自动生成迁移脚本(必看) 命名规范 ==数据库== Oracle的sql关键字是大写的, postgresql是不区分大小写的。 ==表== ==列== ==字段== ==引用== ==引用列表== ==报表== 影响范围:报表名称会直接显示在菜单 关键字:前缀Rpt / RV_ , 其他前缀都不规范 名称:后缀 Report / Detail , 其他随意 名称翻译:直译,先保证习惯,再保证后缀翻译 ==流程== 影响范围:流程名称会直接显示在菜单,或者按钮上 关键字: 1. 具体表的流程,表名_动作_对象(推荐),后2者不固定 2. 共用流程,动作_对象(推荐),比如 CreateFrom , CopyFrom,个别命名不固定 3. 特殊流程,动作,比如PackIn,PackOut 名称:“动作 对象” 名称翻译:直译,尽量满足语气一致性(动作+对象),再保证习惯。直接影响UI体验。 EntityType 所有包含EntityType属性列的表 AD_Column AD_Element AD_EntityType AD_Field AD_FieldGroup AD_Form AD_Image AD_InfoColumn AD_InfoWindow AD_Menu AD_Message AD_ModelValidator AD_Modification AD_Process AD_Process_Para AD_Reference AD_Ref_List AD_Ref_Table AD_ReplicationStrategy AD_ReplicationTable AD_ReportView AD_Rule AD_SysConfig AD_Tab AD_Table AD_Task AD_Val_Rule AD_WF_NextCondition AD_WF_Node AD_WF_NodeNext AD_WF_Node_Para AD_WF_Responsible AD_Window AD_Workbench AD_WorkbenchWindow AD_Workflow PA_ColorSchema PA_MeasureCalc PP_Order_Node PP_Order_NodeNext PP_Order_Workflow PP_WF_Node_Product 开启集中ID管理后,每个字段都将分配到一个Centralized_ID。 当你需要更改AD字典的某个字段到某个客户分支或者主干,你需要 对象访问级别 Organization only-------> 1 只能在Org级别查看,比如分组织的隔离数据(订单明细,发票明细) Client only---------------->2 只能在Client级别*组织访问,比如会计模式,税种 Client + Org-------------->3 System无法访问,客户实体和所有组织能访问 System only-------------> 4 只能在System实体中访问 System + Client---------->6 只能在System实体和客户实体中访问 ALL---------------------->7 无访问权限过滤 SELECT TableName,AccessLevel FROM ad_table ORDER BY 2 1 92 2 85 3 457 4 98 6 192 7 93 总计 1017 参考:[权限控制](http://idempiere_guide_sm.mydoc.io/?t=186541#widget_5312007) 常见实例1 任务1:在用户实体下新建一个窗口(带树的记录表) 步骤: 1. 数据库中新建table 2. ad中新建table指向数据库表,设置字段:数据访问级别=(实体+组织)或者(只限实体) 3. ad中新建window,新建tab,tab指向该table 4. menu中新建记录,指向window,并在维护中修改其位置 5. 客户实体中新建tree记录。 6. 运行权限-自动更新角色权限。 7. 访问菜单,OK。 翻译问题 新建窗口后,很多常见字段都是英文(已翻译过),如何快速翻译为中文? 点击“系统管理”-“总体规则”-“同步术语” 新建窗口 常见实例2 任务2:新建一个Reference记录 步骤: 1. 继续上表,新建一个字段,工序类型,char(1),非空(注意先空值新建,然后修改为非空)。 2. System新建一个Reference记录,Validation type=List Validation,新建List明细。 2. ad中table导入该字段,设置字段取值List,指向2所建的Reference,字段默认值为List某个值。 3. ad中window,选择相应tab,导入该字段,调整位置,OK。 问题: Reference表的数据访问级别是System only,不同实体之间的参考记录都只能由system实体新建,那SAAS服务下,可能需要更改某些表的数据访问级别。 新建参考